4. ПРОГРАММНЫЕ СРЕДСТВА РЕАЛИЗАЦИИ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ
4.5. Основные алгоритмические языки высокого уровня
Один из первых языков программирования высокого уровня,
Фортран
(Formula Translation), был создан в середине 50-х годов.
Он
используется для инженерных и научных расчетов, для решения
задач физики и других наук с развитым математическим аппаратом. Благодаря своей
простоте и тому, что на этом языке накоплены большие библиотеки программ,
Фортран и в наши дни остается одним из самых распространенных алгоритмических
языков.
Для
решения экономических задач был создан язык программирования Кобол.
Расширение
областей применения ЭВМ влечет за собой создание языков, ориентированных на
новые сферы применения: Снобол – алгоритмический
язык для обработки текстовой информации.
Лисп – алгоритмический язык для обработки
символов. Он находит широкое применение в исследованиях по созданию
искусственного
интеллекта.
В
1968 г. был объявлен конкурс на лучший язык программирования для обучения
студентов. Для этого конкурса Никлаус Вирт создал язык Паскаль, достаточно
простой, удобный, с наличием мощных средств структурирования данных. Хотя
Паскаль был разработан как язык для обучения программированию, он впоследствии получил
широкое развитие и в настоящее время считается одним из самых используемых
языков.
Для
обучения младших школьников Самуэлем Пайпертом был разработан язык Лого. Он
отличается простотой и богатыми возможностями.
Широкое
распространение в школах в качестве обучающего языка получил язык Бейсик, позволяющий
взаимодействовать с ЭВМ в режиме непосредственного диалога. Спустя много лет
после изобретения Бейсика, он и сегодня самый простой для освоения из десятков
языков общецелевого программирования.
Необходимость
разработки больших программ, управляющих работой ЭВМ, потребовала создания
специального языка программирования. В начале 70-х г. был разработан язык СИ, который
широко используется как инструментальный язык для разработки
операционных систем, трансляторов, баз данных и других системных и прикладных
программ. Это язык программирования общего назначения. Во многих
случаях программы, написанные на Си, сравнимы
по
скорости с программами, написанными на языке Ассемблера. При этом они имеют
лучшую наглядность и их более просто сопровождать. В отличие от Паскаля, в нем
заложены возможности непосредственного обращения к некоторым машинным командам
и к определенным участкам памяти компьютера.
Появление
функционального программирования привело к созданию языка Пролог (ПРОграммы
ЛОГические). Этот язык программирования
разрабатывался для задач анализа и понимания естественных языков на
основе языка формальной логики и методов автоматического доказательства теорем.
В
80-х г. 20 века был создан язык Ада. В
дополнение к классическим свойствам, он обеспечивает программирование задач
реального времени и моделирования параллельного решения задач.
К языкам сверхвысокого уровня можно отнести
Алгол-68 и APL. Повышение
уровня этих языков произошло за счет введения сверхмощных операций и
операторов.
В
современной информатике можно выделить два основных направления развития языков
программирования: процедурное и непроцедурное.
В
процедурных языках программа явно описывает определенную
последовательность действий, которые необходимо выполнить, чтобы получить
результат.
Среди
процедурных языков выделяют в свою очередь структурные и операционные
языки. В структурных языках одним оператором записываются целые
алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для
этого используются несколько операций. Широко распространены следующие
структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди
операционных известны Фортран, Бейсик, Фокал.
Непроцедурное
(декларативное) программирование появилось в начале
70-х годов 20 века, но стремительное его развитие началось в 80-е годы, когда
был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась
подготовка почвы для создания интеллектуальных машин. К непроцедурному
программированию относятся функциональные и логические языки.
В
функциональных языках программа описывает вычисление некоторой
функции. Обычно эта функция задается как композиция других, более простых, те в
свою очередь разлагаются на еще более простые и т.д. Один из основных элементов
в функциональных языках – рекурсия, то есть
вычисление значения функции через значение этой же функции от других элементов.
Присваивания и циклов в классических
функциональных языках нет.
В
логических языках программа вообще не описывает
действий. Она задает данные и соотношения между ними. После этого системе можно
задавать вопросы. Машина перебирает известные и заданные в программе данные и
находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно
задается самим языком.
Классическим
языком логического программирования считается Пролог. Построение
логической программы вообще не требует алгоритмического мышления, программа описывает
статические отношения объектов, а динамика находится в механизме перебора и
скрыта от программиста.
Можно
выделить еще один класс языков программирования – объектно-ориентированные
языки высокого уровня. На таких
языках не описывают подробной последовательности действий для решения задачи,
хотя они содержат элементы процедурного программирования.
Объектно-ориентированные языки, благодаря богатому пользовательскому
интерфейсу, предлагают человеку решить задачу в удобной для него форме.
Примером такого языка может служить
язык
программирования визуального общения Object
Pascal.
Языки
описания сценариев, такие как Perl, Python, Rexx, Tcl и языки
оболочек UNIX, предназначаются не для написания
приложения с нуля, а для комбинирования компонентов, набор которых создается
заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению
языков описания сценариев. Так, для написания сценариев широко употребляется
язык
Perl, а среди
разработчиков Web-страниц
популярен JavaScript.